版本控制在現今已經是相當普及的東西 (一項技能?),不過程式開發者有可能只有版控程式碼而沒有版控資料庫操作,或者後端框架也越來越多有 Migration 的功能能夠版本控制,不過結尾日 Day 30 來講一個不需要框架就能使用的資料庫版控的工具 Flyway。
可以到 Flyway 官方網站下載 Flyway Desktop 也包含了 Flyway Command Line,我們將使用免費版本,不過必須要註冊一下才可以使用。(不用輸入信用卡)
我們一開始要NewProject建立出一個文件,這個文件將是Flyway版本控制的內容,指定Project location,這個路徑會是之後下Git的路徑,專案建出的時候Flyway也會建立出.gitignore檔案。
接著輸入要版控的資料庫連線資訊,我以本機為例,輸入資料庫名稱、Schemas等完成配置。
完成以上步驟,Flyway才知道從哪開始版控。
接著要開始進入版本控制階段,點選Add migration按鈕,版本會自動帶好(序號+日期),要輸入描述與執行內容,最後Run migrate,大功告成。
CREATE TABLE employees (
emp_no INT NOT NULL,
birth_date DATE NOT NULL,
first_name VARCHAR(14) NOT NULL,
last_name VARCHAR(16) NOT NULL,
hire_date DATE NOT NULL,
PRIMARY KEY (emp_no)
);
接著後續可以使用Git推到Github或是Gitea,更多資料庫版控也推薦 Sponge大大的鐵人賽系列文章 : 資料庫也有版本控制 。
完成的時間比預期還要久上不少,雖然美中不足,但還是很開心完成了一件對我而言有意義的事情,這個系列還能寫到30天必須感謝許多人,職場前輩的提點、家人的支持,以及W.H.大大給我的鼓勵,新手入門系列撰寫的過程中不只是複習資料庫,也學習到了一些實務上較少運用的內容,雖然收穫許多,但仍有許多資料庫主題尚未提及,之後有機會的話,我們 Medium 再見,感謝各位大大。
恭喜完賽!!
哈哈,我被cue了,其實我也是菜鳥一隻,我的頭像就是一隻鳥:貓頭鷹,所以要說「菜鴞」嗎?
偷偷(?)告訴你,我之前也犯蠢過,才剛註冊進來iT邦幫忙3天,我為了試驗如何po文,就把一張圖(已經是畫家去世超過70年的公版畫圖像,我在po文裡有說明)+「test」文字,po在「技術文章區」(雖然那時我有懷疑這算「技術文章」嗎?但找不到其它可放的區域~),然後又賺了2點,點數變成8點,瀏覽數也不少。
看著不斷上升的瀏覽數,我懷著欣喜的心情,關機ZZZ了⋯⋯
第二天我一起來,就趕快打開電腦,直奔本網站,結果不但在技術文章區看不到我的「文章」,連點數都變成-40,我沒向站方詢問(因為不好意思~),開始不斷爬文,得到一個結論:我的「文章」被檢舉,然後被撤下,點數自動扣50點⋯⋯
我超級受打擊的。
為了紀念(?)自己的犯蠢,我把W.H.(conteuse)這個帳號刪除,也把「點數-40」封存起來;然後,用同樣的頭像(反正是我自己畫的) + 同樣的暱稱「W.H.」+ 帳號「understood」(就是「瞭了」)再申請一個帳號,重新註冊。
(用放大鏡搜尋「W.H.」邦友,會看到3個「W.H.」。3個都是我!頭像都是自繪,第1個W.H.捨棄不用,是因為我不想用那個頭像+帳號,就直接刪除了,結果還是找得到,雖然線索是我給的啦,但是真的不能小看「數位刺青」!)
經過這次對新手的震撼(?)教育,我不敢再多發文,不過還是喜歡在這個網站逛逛,覺得這裡喜歡幫助別人的老手和文章很多,當然也有小白(但我要為某些小白說句話,有時小白根本不知道自己是小白啊~)。總之,每天上來逛逛成了日常定番,然後有天在「技術問答區」看到你的文章(我還記得是Day 17),不知為何,覺得非要鼓勵你一下不可,然後就持續看你的文啦,有時留言,讚聲一下,也獲得不少關於資料庫的知識,我也要謝謝你哩。
今年我本來想參加鐵人賽,但因為另有要務(本以為可以齊頭並進,但發現不可能),就先在這裡觀摩見習啦。我應該會參加明年(2023)的鐵人賽(說「應該」,是因為有時會有「不應該」的事情發生~),希望以「電玩小說」或「科幻小說」參加「自我挑戰組」,兩個故事的梗概都有了,就等著具體化&細節化了。
哈哈,不好意思,佔你的版寫了落落長的心路歷程(?),再次恭喜你完賽,雖然沒拿到那張鐵人鍊成證明,但寫好寫滿30天的你,已經不需要那張證明了。
只是,需要≠想要,我不需要,但想要(至少)一張鐵人鍊成證明,如果你也是,那明年見囉。